package com.zhiche.lisa.lspm.service.fleet;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.zhiche.lisa.lspm.dao.model.carrier.CarrierInfo;
import com.zhiche.lisa.lspm.dao.model.carrier.bo.CarrierInfoLineBO;
import com.zhiche.lisa.lspm.dao.model.driver.Driver;
import com.zhiche.lisa.lspm.dao.model.driver.bo.DriverLineBO;
import com.zhiche.lisa.lspm.dao.model.fleet.Fleet;
import com.zhiche.lisa.lspm.dao.model.trailer.TrailerInfo;
import com.zhiche.lisa.lspm.dao.model.trailer.bo.TrailerInfoLineBO;
import com.zhiche.lisa.lspm.vo.driver.DriverBasicVO;


/**
 * 	车队司机，牵引车，挂车登记 service
 *
 * @author fanguangji
 * @since 2018-11-07
 */
public interface IFleetDriverService extends IService<Driver> {

    /**
     * 	司机列表
     */
    Page<Map<String,Object>> driverLine(Page<DriverLineBO> page);

	/**
	 * 添加或更新司机信息
	 * @param driver 司机对象
	 * @param authorization 验证字段
	 * @return Driver
	 */
	Driver updateDriver(DriverBasicVO driver, String authorization);

	/**
	 * 	获取登陆者车队信息
	 * @param fleetId
	 * @param authorization
	 * @return
	 */
	List<Fleet> selectFleetInfo(String fleetId, String authorization);

	/**
	 * 获取车队牵引车列表
	 * @param page 
	 * @param authorization
	 * @return
	 */
	Page<Map<String, Object>> carrierInfoLine(Page<CarrierInfoLineBO> page, String authorization);

	/**
	 * 车队添加修改牵引车信息
	 * @param carrierInfo
	 * @return
	 */
	CarrierInfo updateCarrier(CarrierInfo carrierInfo);

	/**
	 * 车队获取挂车基础信息列表
	 * @param page
	 * @param authorization
	 * @return
	 */
	Page<Map<String, Object>> trailerInfoLine(Page<TrailerInfoLineBO> page, String authorization);

	/**
	 * 车队创建修改挂车
	 * @param trailerInfoParam
	 * @return
	 */
	TrailerInfo updateTrailer(TrailerInfo trailerInfoParam);

}
